1. Field of the Invention
This invention relates to updating compressed information such as software codes in non-volatile memory. In particular, this invention relates to a method to load new software into a non-volatile memory while retaining the old software to prevent loss of information integrity in case of power failure.
2. Description of Related Art
Aircraft In-Flight Entertainment Systems (IFES) provide a variety of services to passengers during flight. Some examples of these services are music, radio programs, TV programs, video on demand, and games. Typical IFES involve a number of processors executing programs for specific tasks. Some programs also execute from and access data in non-volatile memory. Non-volatile memories containing program codes and data are usually implemented by flash electrically erasable programmable read only memories (EEPROMs) due to their popularity in recent years. In the following, the term "information" will be used to describe the codes and data.
Information including programs or data used in IFES may require several revisions during their life cycle. IFES services are highly technology-dependent; therefore when technology changes, the associated information may have to be revised accordingly. In addition, IFES services are also driven by the needs of customers. When customers' needs change, information has to be replaced by new versions reflecting these changes.
Because IFES information may be revised and/or updated quite frequently, it is desirable to update the information in the field rather than during regular maintenance periods. The updating should be as fast as possible to minimize system downtime during "switching over" period. Most importantly, the updating should not be compromised by other temporary system malfunctions such as power failure.
When the information is stored in the flash memory devices, revisions can be made by erasing the old information and loading the new information into the erased devices. Due to the in-circuit programmability of flash memory devices, the method of loading new information can be carried out in the field when the device is still powered. The new information can be transmitted to the field through any data communication method. However, the loading of the new information may take some time because the process of writing to the flash memory is relatively slow. During this time, temporary system malfunctions such as a power failure could interrupt the process. The result of this interruption could be disastrous if at the time of the power failure the old information has already been erased completely and the new information is only partially loaded into the flash memory. In this situation, when power is restored, the system boots up with only partially loaded new information. Needless to say, this scenario may lead to catastrophic consequences to the IFES.
It is, therefore, desirable to have a method to load the new information into the flash memory efficiently to reduce the loading time and at the same time to avoid compromising the information integrity during power failure.